bl      label1
label1:
/*base pc address x5*/
mov     x5, x30
/*addr of libname */
ldr     x0, [x5, #132]
mov     x1, #1
/*address of dlopen*/
ldr     x3, [x5, #140]
blr     x3
bl      label2
label2:
mov     x5, x30
ldr     x0, [x5, #44]
ldr     x1, [x5, #52]
ldr     x3, [x5, #60]
ldr     x4, [x5, #76]
mov     sp, x4
ldr     x4, [x5, #68]
ldr     x30, [x5, #84]
/*pc return address*/
ldr     x28, [x5, #100]
ldr     x5, [x5, #92]
ret     x28
/*x0*/
/*x1*/
/*x3*/
/*x4*/
/*sp*/
/*x30*/
/*x5*/
/*pc*/
/*addr of libname*/
/*dlopenaddr*/
/*8 bytes for stack alignment purpose*/
